<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.prime.com.tr/ui">
    <h:head>
        <title>Reservas</title>
        <link href="estilo.css" type="text/css" rel="stylesheet"/>
          <script type="text/javascript">
                function saliendo1(){
                    if(confirm("Desea cancelar la Solicitud de Reserva?\nAceptar lo llevara a Home, Cancelar lo mantendra en esta vista")){
                        window.location="home.xhtml";
                    }
                }
                function saliendo2(){
                    if(confirm("Su solicitud ya fue registrada!, \nSi cancela ahora esta quedara abierta a cambios futuros, Desea salir?\n\nAceptar lo llevara a Home, Cancelar lo mantendra en esta vista")){
                        window.location="home.xhtml";
                    }
                }
        </script>
    </h:head>
    <h:body styleClass="texto">
        <p:growl id="popup" life="3000" showDetail="true"/>
        <br></br>
        <p:tabView id="wizard" event="noNavigation" widgetVar="tab" activeIndex="#{reserva.index}">
            <p:tab id="pestaña1" title="1. Reserva General">
                <h:form id="este">
                    <p:panel styleClass="panelResumen">
                        <center>
                            <h:outputLabel styleClass="textoResaltar" value="Confirme su información personal, y visualice datos de interés antes de empezar"/>
                        </center>
                    </p:panel>
                    <center>
                        <h:panelGrid styleClass="texto" columns="2" cellspacing="10" cellpadding="10">
                            <p:fieldset legend="Información del Solicitante">
                                <h:panelGrid columns="3">
                                    <h:outputLabel value="Cedula:"/>
                                    <p:inputText id="cedSolicitante" value="#{userSession.clienteSolicitante.cedula}"/>
                                    <p:commandButton disabled="#{reserva.permitirBusqueda}" actionListener="#{userSession.buscarSolicitante()}" ajax="false" update="popup" image="ui-icon ui-icon-search"/>
                                    </h:panelGrid>
                                <h:panelGrid columns="2">
                                    <h:outputLabel value="Nombre:"/>
                                    <p:inputText readonly="true" size="23" value="#{userSession.clienteSolicitante.nombre}"/>
                                    <h:outputLabel value="Teléfono:"/>
                                    <p:inputText readonly="true" value="#{userSession.clienteSolicitante.telefono}"/>
                                </h:panelGrid>
                            </p:fieldset>
                            <p:fieldset legend="Información de la Reserva">
                                <h:panelGrid columns="2">
                                    <h:outputLabel value="Codigo:"/>
                                    <p:inputText id="codReserva" readonly="true" value="#{reserva.reserva.codigoReserva}"/>
                                    <h:outputLabel value="Fecha Realización:"/>
                                    <p:calendar disabled="true" value="#{reserva.reserva.fechaRealizacion}"/>
                                    <h:outputLabel value="Descripción:"/>
                                    <h:inputTextarea value="#{reserva.reserva.descripcion}" style="width: 100%; resize: none"/>
                                </h:panelGrid>
                            </p:fieldset>
                        </h:panelGrid>
                    </center>
                    <center>
                        <br></br>
                        <h:panelGrid columns="2">
                        <p:commandButton value="Confirmar" actionListener="#{reserva.crearReserva()}" ajax="false" update="wizard"/>
                        <p:commandButton value="Cancelar" onclick="saliendo1()" ajax="true" update="wizard"/>
                        </h:panelGrid>
                    </center>
                </h:form>
            </p:tab>
            <p:tab id="pestaña2" title="2. Selección">
                <h:form>
                    <p:panel styleClass="panelResumen">
                        <center>
                            <h:outputLabel styleClass="textoResaltar" value="Seleccione y Realice las reservas que desea realizar ya sean de habitaciones o de salas de eventos"/>
                        </center>
                    </p:panel>
                    <center>
                        <h:panelGrid columns="2" cellpadding="10" cellspacing="10">
                            <p:panel header="Reserva de Salas">
                                <h:form>
                                    <p:dataTable value="#{reservaSala.listarReservasSalas()}" var="resSal" emptyMessage="Click en Nueva para reservar una sala" paginator="true" rows="3">
                                        <p:column >
                                            <f:facet name="header">
                                                Fecha
                                            </f:facet>
                                           #{resSal.fechaProg}
                                        </p:column>
                                        <p:column >
                                            <f:facet name="header">
                                                # Sala
                                            </f:facet>
                                            #{resSal.sala.numero}
                                        </p:column>
                                        <p:column >
                                            <f:facet name="header">
                                                Hora Inicio
                                            </f:facet>
                                            #{resSal.horaInicio}
                                        </p:column>
                                        <f:facet name="footer">
                                            <p:commandButton value="Nueva" onclick="dlgResSala.show()" type="button"/>
                                        </f:facet>
                                    </p:dataTable>
                                </h:form>
                            </p:panel>
                            <p:panel header="Reserva de Habitaciones">
                                <h:form>
                                    <p:dataTable id="tablaRH" value="#{reservaHabitacion.listarReservasHabitacion()}" var="resHab" emptyMessage="Click en Nueva para reservar una habitación" paginator="true" rows="3">
                                        <p:column >
                                            <f:facet name="header">
                                                Ingreso
                                            </f:facet>
                                            #{resHab.fechaProgIn}
                                        </p:column>
                                        <p:column >
                                            <f:facet name="header">
                                                Salida
                                            </f:facet>
                                            #{resHab.fechaProgOut}
                                        </p:column>
                                        <p:column >
                                            <f:facet name="header">
                                                # Hab
                                            </f:facet>
                                            #{resHab.habitacion.numero}
                                        </p:column>
                                        <f:facet name="footer">
                                            <p:commandButton value="Nueva" onclick="dlgResHab.show()" type="button"/>
                                        </f:facet>
                                    </p:dataTable>
                                </h:form>
                            </p:panel>
                        </h:panelGrid>
                    </center>
                    <center>
                        <br></br>
                        <h:panelGrid columns="2">
                        <p:commandButton value="Continuar" actionListener="#{reserva.irResumen()}" ajax="false" update="wizard"/>
                        <p:commandButton value="Cancelar" onclick="saliendo2()" ajax="true" update="wizard"/>
                        </h:panelGrid>
                    </center>
                </h:form>
            </p:tab>
            <p:tab title="3. Resumen">
                <h:form>
                    <p:panel styleClass="panelResumen">
                        <center>
                            <h:outputLabel styleClass="textoResaltar" value="Su solicitud de Reserva se ha registrado satisfactoriamente!"/>
                        </center>
                        <br></br>
                        <br></br>
                        <h:outputLabel styleClass="textoResaltar" value="Por favor no olvide estos datos, le serán muy útiles"/>
                        <h:panelGrid columns="2" cellpadding="4">
                            <h:outputLabel value="Código de la Reserva: "/>
                            <h:outputLabel value="#{reserva.reserva.codigoReserva}"/>
                            <h:outputLabel value="Fecha de Realización: "/>
                            <p:calendar value="#{reserva.reserva.fechaRealizacion}" disabled="true"/>
                        </h:panelGrid>
                    </p:panel>
                    <center>
                        <br></br>
                        <p:commandButton value="Culminar" action="#{menuPpal.irHome()}" ajax="update" update="iframeI"/>
                    </center>
                </h:form>
            </p:tab>
        </p:tabView>
        <h:form>
            <p:dialog width="560" header="Reserva de Salón de Eventos" modal="true" widgetVar="dlgResSala" resizable="false">
                <p:panel>
                    <h:panelGrid columns="2">
                        <h:outputLabel value="Fecha programada del evento:"/>
                        <p:calendar id="fechaEvento" showOn="button" value="#{reservaSala.reservaSala.fechaProg}" required="true" requiredMessage="Fecha de evento es obligatoria"/>
                        <h:outputLabel value="Hora de Inicio:"/>
                        <p:inputMask id="horaInicio" mask="99:99 aa" value="#{reservaSala.reservaSala.horaInicio}" required="true" requiredMessage="Hora de inicio es obligatoria"/>
                        <h:outputLabel value="Hora de Fin:"/>
                        <p:inputMask id="horaFin" mask="99:99 aa" value="#{reservaSala.reservaSala.horaFin}" required="true" requiredMessage="Hora de fin es obligatoria"/>
                        <h:outputLabel value="Descripción:"/>
                        <h:inputTextarea id="descripción" value="#{reservaSala.reservaSala.descripcion}" required="true" requiredMessage="Descripción del evento es requerida" style="width: 176px; resize: none;"/>
                        <h:outputLabel value="# Asistentes aprox:"/>
                        <p:inputText id="asistentes" value="#{reservaSala.asistentes}" required="true" requiredMessage="Fije un aproximado de asistentes"/>
                    </h:panelGrid>
                    <f:facet name="footer">
                        <center>
                            <h:panelGrid columns="2">
                                <p:commandButton value="Guardar" actionListener="#{reservaSala.crearReservaSala()}" oncomplete="handleComplete(xhr, status, args)" ajax="false" update="popup"/>
                                <p:commandButton value="Cancelar" onclick="dlgResSala.close()"/>
                            </h:panelGrid>
                        </center>
                    </f:facet>
                </p:panel>
            </p:dialog>
        </h:form>
        <h:form>
            <p:dialog width="520" header="Reserva de Habitación" modal="true" widgetVar="dlgResHab" resizable="false">
                <p:panel>
                    <h:panelGrid columns="2">
                        <h:outputLabel value="Fecha programada de entrada:"/>
                        <p:calendar showOn="button" value="#{reservaHabitacion.reservaHabitacion.fechaProgIn}" required="true" requiredMessage="Fecha de entrada es obligatoria"/>
                        <h:outputLabel value="Fecha programada de salida:"/>
                        <p:calendar showOn="button" value="#{reservaHabitacion.reservaHabitacion.fechaProgOut}" required="true" requiredMessage="Fecha de salida es obligatoria"/>
                        <h:outputLabel value="Tipo de Habitación:"/>
                        <h:selectOneMenu id="tiHa" value="#{reservaHabitacion.reservaHabitacion.habitacion.distribucion}">
                            <f:selectItem itemValue="Sencilla" itemLabel="Sencilla"/>
                            <f:selectItem itemValue="Doble" itemLabel="Doble"/>
                            <f:selectItem itemValue="Matrimonial" itemLabel="Matrimonial"/>
                            <f:selectItem itemValue="Otra" itemLabel="Otra"/>
                        </h:selectOneMenu>
                        <h:outputLabel value="Notas:"/>
                        <p:inputTextarea id="notas" autoResize="false" effectDuration="10" maxHeight="30"/>
                    </h:panelGrid>
                    <f:facet name="footer">
                        <center>
                            <h:panelGrid columns="2">
                                <p:commandButton value="Guardar" actionListener="#{reservaHabitacion.crearReservaHabitacion()}" oncomplete="handleComplete(xhr, status, args)" ajax="false" update="popup, wizard"/>
                                <p:commandButton value="Cancelar" onclick="dlgResHab.close()"/>
                            </h:panelGrid>
                        </center>
                    </f:facet>
                </p:panel>
            </p:dialog>
            <script type="text/javascript">
                    function handleComplete(xhr, status, args) {
                            if(!args.validationFailed) {
                                    dlgResHab.hide();   
                                    dlgResSala.hide();     
                            } 
                    }
            </script>
            
        </h:form>
    </h:body>
</html>